<svg style="display: block; width: 0; height: 0">
  <defs>
    <filter id="merge">
      <femerge>
        <femergenode in="StrokePaint"></femergenode>
        <femergenode in="SourceGraphic"></femergenode>
      </femerge>
    </filter>
  </defs>
</svg>
<canvas id="canvas" width="100" height="100"></canvas>
<script>
var canvas = document.getElementById('canvas');
var ctx = canvas.getContext('2d');
var canvas2 = document.createElement('canvas');
canvas2.width = 20;
canvas2.height = 20;
var ctx2 = canvas2.getContext('2d');

ctx2.fillStyle = '#00f';
ctx2.fillRect(0, 0, 10, 10);
ctx2.fillStyle = '#0f0';
ctx2.fillRect(0, 10, 10, 10);
ctx2.fillStyle = '#f00';
ctx2.fillRect(10, 0, 10, 10);
ctx2.fillStyle = '#ff0';
ctx2.fillRect(10, 10, 10, 10);

var pattern = ctx.createPattern(canvas2, 'repeat');
ctx.filter = 'url(#merge)';
ctx.strokeStyle = pattern;
ctx.fillStyle = '#f0f';
ctx.fillRect(40, 40, 20, 20);
</script>
